class BasePopupEdit {
    constructor(dataId, pageStatus) {
        this.dataId = dataId;                                  // 当前数据标识
        this.pageStatus = pageStatus;                          // 状态设置 0:新增 1:编辑 
        this.saveFlag = 0;                                     // 保存后是否继续增加标记
    }
    OnPageLoad() {
        
    }
    // 设置信息显示位置 flag 1:成功消息 0：失败消息
    SetInfoPosition(flag) {
        if (flag === 1) {
            $(".success-msg").css({left: '180px', top: '3px'});
        }
        if (flag === 0) {
            $(".error-msg").css({left: '180px', top: '3px'});
        }
    }
    New(callback) {
        // 判断当前form是否有改变
        if ($("#form_data").data("changed")) {
            showModal(370, 140, '系统信息', '', null, null, 1, "数据已经更新，是否需要保存？", () => {
                this.saveFlag = 1;
                this.Save();    // 表示保存后再增加
            }, () => (this.OnNew(callback)));
        } else {
            this.OnNew(callback);
        }
    }
    OnNew(callback) {
        $("#form_data").data("changed", false);   // 重新初始化

        // 清空表单内容，准备下一个记录
        $(':input', '#form_data').not(':button, :submit, :reset, :hidden')
                .val('').removeAttr('checked').removeAttr('selected');
        $('#form_data')[0].reset();
        $(".error").removeClass("error");
        $(".tooltip").remove();
        $("img.errMsgTooltip").remove();
        $('#form_data span.selectSpan').html('');

        this.pageStatus = 1;
        this.dataId = 0;
        // 调用回掉函数
        callback();
        $('#loading').hide();
    }
    DoAjax(data, url, callback) {
        $.ajax({
            type: "POST",
            url: parent.basePath + url,
            timeout: 30 * 1000,
            data: JSON.stringify(data),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            beforeSend: () => {
            }
        }).done(data => {
            callback(data, this);
        }).fail(data => {
            ajaxError(data, 1);
            this.SetInfoPosition(1);
        }).always(( ) => {
        });
    }
}